<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
    //1.构造函数
    function Person() {}
    //动态为 person 构造函数的原型添加 方法

    Person.prototype.sayHi = function() {
        console.log('h1');
    }
    Person.prototype.walk = function () {
        console.log('散步');
    }
    //p1
    var p1 = new Person();
    console.log(p1.constructor);

    p1.sayHi();
    p1.walk();
    
    var p2 = new Person();
    p2.sayHi();
    p2.walk()
   // 验证 p1.sayHi == p2.sayHi
    console.log(p1.sayHi == p2.sayHi);
     // 验证 p1 执行的 walk 方法 与 p2执行的 walk 方法是同一个吗？
    console.log(p1.walk == p2.walk);
//  每个实例对象（ object ）都有一个私有属性（称之为 __proto__ ）指向它的构造函数的原型对象（prototype ）。
    console.log(Person.prototype == p1.__proto__);
    
    
    /*
    特点： 构造函数的原型对象 prototype里面的属性和方法 可以直接被 构造函数实例化 的 对象实例 访问和调用


    每个实例对象（ object ）都有一个私有属性（称之为 __proto__ ）指向它的构造函数的原型对象（prototype ）。
    __proto__ 不建议在 生产环境使用， 仅仅是在开发阶段调试使用
*/ 
    
    
    </script>
</body>
</html>